home *** CD-ROM | disk | FTP | other *** search
/ Ham Radio 2000 #1 / Ham Radio 2000.iso / ham2000 / packet / p_aa4re / bb212src / bbhmerge.pas < prev    next >
Encoding:
Pascal/Delphi Source File  |  1989-11-19  |  4.0 KB  |  153 lines

  1. PROGRAM bbhmerge;
  2.  
  3. USES
  4.   DOS,
  5.   bbdummy;
  6.  
  7. VAR
  8.   file_in_name     : STRING[100];
  9.   master_file_name : STRING[100];
  10.   file_in          : TEXT;
  11.   master_file      : TEXT;
  12.  
  13. BEGIN;
  14.  
  15.   file_in_name     := PARAMSTR(1);
  16.   master_file_name := PARAMSTR(2);
  17.  
  18.   IF master_file_name = '' THEN
  19.     master_file_name := 'HLOOKUP.BB';
  20.  
  21.   ASSIGN(msg1_file, msg1_name);
  22.   ASSIGN(msg_file,  msg_name);
  23.  
  24.   RESET  (msg1_file);
  25.  
  26.   READ(msg1_file, msg1_buffer);
  27.   IF msg1_buffer.msg_number <> 1 THEN
  28.     BEGIN;
  29.       WRITELN('Input file has a version number of ', msg1_buffer.msg_number);
  30.       WRITELN('It should have a version number of 1');
  31.       HALT;
  32.     END;
  33.  
  34.   REWRITE(msg_file);
  35.   FILLCHAR(msg_buffer, SIZEOF(msg_buffer), CHR(0));
  36.   msg_buffer.msg_number := sys_version;
  37.   WRITE(msg_file, msg_buffer);
  38.  
  39.   i := 1;
  40.   last_msg_tens := 0;
  41.   WHILE i < FILESIZE(msg1_file) DO
  42.     BEGIN;
  43.  
  44.       j := i div 10;
  45.       IF j > last_msg_tens THEN
  46.         BEGIN;
  47.           WRITELN('Processing record #', i);
  48.           last_msg_tens := j;
  49.         END;
  50.  
  51.       FILLCHAR(msg_buffer, SIZEOF(msg_buffer), CHR(0));
  52.  
  53.       INC(i);
  54.       READ(msg1_file, msg1_buffer);
  55.  
  56.       WITH msg1_buffer DO
  57.         BEGIN;
  58.           msg_buffer.msg_number  := msg_number;
  59.           msg_buffer.msg_type    := msg_type;
  60.           msg_buffer.msg_flag    := msg_flag;
  61.           msg_buffer.msg_size    := msg_size;
  62.           msg_buffer.msg_to      := msg_to;
  63.           msg_buffer.msg_to_at   := msg_to_at;
  64.           msg_buffer.msg_from    := msg_from;
  65.           msg_buffer.msg_from_at := msg_from_at;
  66.           msg_buffer.msg_dt_in   := msg_dt_in;
  67.           msg_buffer.msg_dt_orig := msg_dt_orig;
  68.           msg_buffer.msg_no_orig := msg_no_orig;
  69.           msg_buffer.msg_tread   := msg_tread;
  70.           msg_buffer.msg_bid     := msg_bid;
  71.           msg_buffer.msg_subj    := msg_subj;
  72.         END;
  73.  
  74.       WITH msg_buffer DO
  75.         BEGIN;
  76.           msg_flag    := [];
  77.  
  78.           IF mf1_hold       IN msg1_buffer.msg_flag THEN
  79.             msg_flag := msg_flag + [mf_hold];
  80.  
  81.           IF mf1_read       IN msg1_buffer.msg_flag THEN
  82.             msg_flag := msg_flag + [mf_read];
  83.  
  84.           IF mf1_fwd        IN msg1_buffer.msg_flag THEN
  85.             msg_flag := msg_flag + [mf_fwd];
  86.  
  87.           IF mf1_fwd_select IN msg1_buffer.msg_flag THEN
  88.             msg_flag := msg_flag + [mf_fwd_select];
  89.  
  90.           IF mf1_fwd_list   IN msg1_buffer.msg_flag THEN
  91.             msg_flag := msg_flag + [mf_fwd_list];
  92.  
  93.           IF mf1_old        IN msg1_buffer.msg_flag THEN
  94.             msg_flag := msg_flag + [mf_old];
  95.  
  96.           IF mf1_kill       IN msg1_buffer.msg_flag THEN
  97.             msg_flag := msg_flag + [mf_kill];
  98.  
  99.           IF mf1_bid_reject IN msg1_buffer.msg_flag THEN
  100.             msg_flag := msg_flag + [mf_bid_reject];
  101.  
  102.         END;
  103.  
  104.       WRITE(msg_file, msg_buffer);
  105.  
  106.       IF mf_fwd_list IN msg_buffer.msg_flag THEN
  107.         BEGIN;
  108.  
  109.           FILLCHAR(msg_buffer, SIZEOF(msg_buffer), CHR(0));
  110.  
  111.           INC(i);
  112.           READ(msg1_file, msg1_buffer);
  113.  
  114.           WITH dis1_area^ DO
  115.             BEGIN;
  116.               j                  := msg_d_no;
  117.               dis_area^.msg_d_no := j;
  118.  
  119.               FOR k := 1 TO j DO
  120.                 WITH msg_d_array[k] DO
  121.                   BEGIN;
  122.  
  123.                     dis_area^.msg_d_array[k].msg_d_info := msg_d_info;
  124.  
  125.                     dis_area^.msg_d_array[k].msg_d_flag := [];
  126.                     IF df1_fwd IN msg_d_flag THEN
  127.                       dis_area^.msg_d_array[k].msg_d_flag := [df_fwd];
  128.                     IF df1_fwd_reject IN msg_d_flag THEN
  129.                       dis_area^.msg_d_array[k].msg_d_flag := [df_fwd_reject];
  130.  
  131.                   END;
  132.  
  133.             END;
  134.  
  135.           WRITE(msg_file, msg_buffer);
  136.  
  137.         END;
  138.  
  139.     END;
  140.  
  141.   CLOSE(msg1_file);
  142.   CLOSE(msg_file);
  143.  
  144.   IF rename_it THEN
  145.     BEGIN;
  146.       RENAME(msg1_file, 'MSG.V1');
  147.       RENAME(msg_file, 'MSG.BB');
  148.     END;
  149.  
  150.   WRITELN('Conversion Done.  ', i, ' records processed.');
  151.  
  152. END.
  153.